100 REM ****************** 110 REM * * 120 REM * SUB DIR SYSTEM * 130 REM * 64'ER 2/89 S36 * 140 REM ****************** 150 REM 160 REM (C) 1988 BY 170 REM DIRK JANSEN 180 REM 190 REM VER 1.1 - 21.07.88 200 REM ================== 210 : 220 PRINT CHR$(147) 230 PRINT TAB(13);"SUB DIR SYSTEM" 240 PRINT 250 PRINT TAB(13);"V1.1 21.07.88" 260 PRINT 270 PRINT TAB(8);"(C) 1988 BY DIRK JANSEN" 280 PRINT 282 PRINT TAB(5);"ENLARGED 1989 BY HORST STIELER" 284 PRINT 290 PRINT"========================================" 300 GOSUB 4000:REM * GERAETE NUMMERN ABFRAGEN 310 NU$=CHR$(0): RESTORE: FOR I=0 TO 7: READ BY$: NEXT I 312 D0$=STR$(0)+STR$(5)+STR$(35) 314 D1$="" 316 FOR I=1 TO 17: READ BY: D1$=D1$+STR$(BY): NEXT I 318 READ BY 320 D2$="" 322 FOR I=19 TO 22: READ BY: D2$=D2$+STR$(BY): NEXT I 324 READ BY 326 D3$="" 328 FOR I=24 TO 35: READ BY: D3$=D3$+STR$(BY): NEXT I 329 RESTORE 330 GOSUB 44650 332 DIM FE$(29),FT$(4),FS$(3) 334 FT$(0)="DEL": FT$(1)="SEQ": FT$(2)="PRG": FT$(3)="USR": FT$(4)="REL" 335 DIM BA(35,4) 340 PRINT CHR$(147) 350 PRINT"***** SUB DIR SYSTEM V 1.1 *****" 360 PRINT 370 PRINT "GERAET:";U,"LAUFWERK: ";D$ 380 PRINT:PRINT 390 PRINT" 1 - SUB DIR SYSTEM ANLEGEN" 400 PRINT 410 PRINT" 2 - SUB DIR ANLEGEN" 420 PRINT 430 PRINT" 3 - DISK BEFEHL" 440 PRINT 450 PRINT" 4 - INHALTSVERZEICHNIS" 460 PRINT 470 PRINT" 5 - GERAETE NUMMERN AENDERN" 480 PRINT 481 PRINT" 6 - DIRECTORYS LISTEN/DRUCKEN" 482 PRINT 483 PRINT" 7 - DISKETTE VALIDIEREN" 484 PRINT 485 PRINT" 8 - SUB DIR LOESCHEN" 486 PRINT 490 PRINT" 0 - PROGRAMM ENDE" 500 PRINT:PRINT 510 INPUT"IHRE WAHL";O 520 ON O+1 GOSUB 1000,10000,20000,2000,3000,4000,41050,41420,42000 530 GOTO 340 970 : 980 REM *** ENDE *** 990 : 1000 SYS 64738 1970 : 1980 REM *** DISK BEFEHL *** 1990 : 2000 PRINT 2010 POKE 198,3 2020 POKE 631,34 2030 POKE 632,20 2040 POKE 633,34 2050 A$="" 2060 INPUT"BEFEHL";A$ 2070 OPEN 15,U,15 2080 IF A$="" THEN 2200 2090 PRINT#15,A$ 2200 PRINT 2210 PRINT"STATUS: "; 2220 GET#15,E$: IF E$<>CHR$(13) THEN PRINTE$;: GOTO 2220 2230 CLOSE15 2240 PRINT:PRINT:PRINT"- TASTE DRUECKEN -" 2250 GET A$: IF A$="" THEN 2250 2260 RETURN 2970 : 2980 REM *** INHALTSVERZEICHNIS *** 2990 : 3000 PRINT 3010 OPEN 1,U,0,"$"+D$ 3020 POKE 781,1 3040 GET#1,A$,A$ 3050 GET#1,A$,A$: IF ST=64 THEN 3110 3060 : GET#1,A$,B$:PRINTCHR$(157);ASC(A$+CHR$(0))+256*ASC(B$+CHR$(0)); 3070 : GET#1,A$:PRINT A$;: IF A$<>"" THEN 3070 3080 : PRINT 3090 GOTO 3050 3110 CLOSE 1 3120 PRINT:PRINT:PRINT"- TASTE DRUECKEN -" 3130 GET A$: IF A$="" THEN 3130 3140 RETURN 3970 : 3980 REM *** GERAETE NUMMERN AENDERN *** 3990 : 4000 PRINT 4010 INPUT"GERAETE NUMMER? 8[157][157][157]";U 4020 IF U<8 OR U>15 THEN 4010 4030 INPUT"LAUFWERK ? 0[157][157][157]";D$ 4040 IF D$<>"0" AND D$<>"1" THEN 4030 4050 RETURN 9970 : 9980 REM *** SYSTEM ANLEGEN *** 9990 : 10000 OPEN 15,U,15,"I"+D$ 10010 INPUT#15,E1,E2$,E3,E4 10020 IF E1=0 THEN 10100 10030 PRINT 10040 PRINT"*** DISK: ";E1;E2$;E3;E4;"***" 10050 PRINT 10060 RETURN 10100 OPEN 2,U,2,"#" 10110 PRINT#15,"U1 2 ";D$;" 18 1" 10112 FOR I=2 TO 226 STEP 32 10120 : PRINT#15,"B-P 2";I 10130 : GET#2,T$ 10150 : IF T$<>"" THEN 10170 10160 NEXT I 10162 PRINT#15,"B-P 2 0" 10164 GET#2,T$ 10166 IF T$="" THEN 10220 10170 : PRINT 10180 : PRINT"*** DISK IST NICHT LEER ***" 10190 : PRINT 10200 : INPUT"DISK LOESCHEN(J/N)? N[157][157][157]";A$ 10210 : IF A$="N" THEN CLOSE2:CLOSE15: RETURN 10220 : PRINT:PRINT"IMPRESSUM SCHREIBEN" 10222 PRINT#15,"B-P 2 00" 10230 PRINT#2,CHR$(0);CHR$(255); 10240 FOR I=0 TO 7 10242 : PRINT#15,"B-P 2";I*32+2 10250 : PRINT#2,CHR$(195);CHR$(18);CHR$(0); 10260 : READ A$ 10270 : PRINT#2,LEFT$(A$+"[160][160][160][160][160][160][160][160][160][160][160][160][160][160][160]",16); 10280 : PRINT#2,CHR$(0);CHR$(0);CHR$(0); 10290 : PRINT#2,"DIRK"; 10300 : PRINT#2,CHR$(0);CHR$(0); 10310 : PRINT#2,CHR$(0);CHR$(0); 10320 NEXT I 10330 PRINT#15,"U2 2 ";D$;" 18 01" 10340 PRINT:PRINT"ROOT DIR ANLEGEN" 10350 CLOSE2 10360 CLOSE15 10370 N$="======ROOT======":REM -NAMEUEBERGEBEN 10380 GOSUB 30000:REM - DIR ANLEGEN 10470 OPEN15,U,15 10480 PRINT:PRINT"INIT DISK" 10490 PRINT#15,"I";D$ 10500 PRINT:PRINT"VALIDATE DISK" 10510 PRINT#15,"V";D$ 10520 CLOSE15 10530 RETURN 10662 PRINT#15,"B-P 2 0" 10664 GET#2,T$ 10666 IF T$<>"" THEN 10180 12000 DATA " SUB DIR SYSTEM " 12010 DATA "(W) '88 D.JANSEN" 12020 DATA " " 12030 DATA "USE DISK COMMAND" 12040 DATA " &XXXXXX TO " 12050 DATA " CHANGE DIR " 12060 DATA " " 12070 DATA " DON'T VALIDATE " 19970 : 19980 REM *** DIR ANLEGEN *** 19990 : 20000 PRINT 20010 N$="":INPUT"DIR NAME (MAX 15 ZEICHEN)";N$ 20020 IF LEN(N$)>15 OR LEN(N$)<1 THEN 20010 20030 N1$=N$ 20040 IF LEN(N$)<16 THEN N$="="+N$+"=":GOTO 20040 20050 N$=LEFT$(N$,16) 21000 PRINT:PRINT"DIR ANLEGEN" 21010 GOSUB 30000:REM - DIR ANLEGEN 21900 RESTORE 21910 FOR I=0 TO 7 21920 : READ A$ 21930 NEXT I 22000 PRINT:PRINT"UMSCHALT BEFEHL ANLEGEN T:";T;" S:";S 22010 OPEN2,U,2,"&"+N1$+",U,W" 22020 PRINT#2,CHR$(0);CHR$(5);:REM - STARTADRESSE 22030 PRINT#2,CHR$(35);:REM - ANZAHL BYTES 22040 P=0 22050 FOR I=1 TO 35 22060 : READ A 22070 : IF A=-1 THEN A=T 22080 : IF A=-2 THEN A=S 22090 : P=P+A: IF P>255 THEN P=P-255 22100 : PRINT#2,CHR$(A); 22110 NEXT I 22120 P=P+5+35 22130 P=P-(255*INT(P/256)) 22140 PRINT#2,CHR$(P); 22150 CLOSE2 23000 PRINT:PRINT"UMSCHALTEN" 23010 OPEN15,U,15 23020 OPEN 2,U,2,"#" 23030 PRINT#15,"U1 2 ";D$;" 18 01" 23040 PRINT#15,"B-P 2 0" 23050 GET#2,T$,S$ 23060 T=ASC(T$+CHR$(0)) 23070 S=ASC(S$+CHR$(0)) 23080 CLOSE2 23090 PRINT#15,"&"+N1$ 23100 CLOSE15 23900 RESTORE 23910 FOR I=0 TO 7 23920 : READ A$ 23930 NEXT I 24000 PRINT:PRINT"RUECKSCHALT BEFEHL ANLEGEN T:";T;" S:";S 24010 OPEN2,U,2,"&BACK,U,W" 24020 PRINT#2,CHR$(0);CHR$(5);:REM - STARTADRESSE 24030 PRINT#2,CHR$(35);:REM - ANZAHL BYTES 24040 P=0 24050 FOR I=1 TO 35 24060 : READ A 24070 : IF A=-1 THEN A=T 24080 : IF A=-2 THEN A=S 24090 : P=P+A: IF P>255 THEN P=P-255 24100 : PRINT#2,CHR$(A); 24110 NEXT I 24120 P=P+5+35 24130 P=P-(255*INT(P/256)) 24140 PRINT#2,CHR$(P); 24150 CLOSE2 25000 PRINT:PRINT"RUECKSCHALTEN" 25010 OPEN15,U,15 25020 PRINT#15,"&BACK" 25030 CLOSE15 25040 RETURN 29970 : 29980 REM *** DIR ANLEGEN *** 29990 : 30000 OPEN15,U,15 30010 OPEN 2,U,2,"#" 30020 PRINT#15,"U1 2 ";D$;" 18 01" 30030 PRINT#15,"B-P 2 0" 30040 GET#2,T$ 30050 T1=ASC(T$+CHR$(0)) 30070 PRINT#15,"B-A ";D$;" 18 00" 30080 INPUT#15,A,A$,T,S 30090 PRINT#15,"B-A ";D$;T;S 30100 PRINT#15,"B-P 2 00" 30110 PRINT#2,CHR$(0);CHR$(255); 30120 PRINT#2,CHR$(195);CHR$(18);CHR$(0); 30130 PRINT#2,LEFT$(N$+"[160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160]",16); 30140 PRINT#2,CHR$(0);CHR$(0);CHR$(0); 30150 PRINT#2,"DIR "; 30160 PRINT#2,CHR$(0);CHR$(0); 30170 PRINT#2,CHR$(0);CHR$(0); 30180 PRINT#2,CHR$(0);CHR$(0); 30260 FOR I=34 TO 253 30270 : PRINT#2,CHR$(0); 30280 NEXT I 30300 PRINT#15,"U2 2 ";D$;T;S 30310 IF T1=18 THEN 30500 30320 : PRINT#15,"U1 2 ";D$;" 18 01" 30330 : PRINT#15,"B-P 2 0" 30340 : PRINT#2,CHR$(T);CHR$(S); 30350 : PRINT#15,"U2 2 ";D$;" 18 01" 30500 CLOSE15 30510 CLOSE2 30520 RETURN 39970 : 39980 REM *** DATEN FUER & FILE *** 39990 : 40000 DATA 169,18,133,8,169,1,133,9,169,128,133,1,165,1,48,252,169,-1,141,0,4 40010 DATA 169,-2,141,1,4,169,144,133,1,165,1,48,252,96 41000 : 41010 REM ***************************** 41020 REM * DIRECTORYS LISTEN/DRUCKEN 41030 REM * 41050 DR=B0 41060 PRINT"AUSGABE AUCH AUF DRUCKER ? (J/N)" 41070 GET BY$: IF BY$="" THEN 41070 41080 IF BY$<>"J" THEN 41140 41090 PRINT"GERAETEADRESSE (4/5) ?": BY$="" 41100 GET BY$:IF BY$="" THEN 41100 41110 PR=VAL(BY$): IF PR>=4 AND PR<=5 THEN DR=B1: OPEN4,PR: GOTO 41140 41120 PRINT"GERAETEADRESSE IST NICHT 4 ODER 5": GOTO 41320 41140 HE=1 41150 OPEN15,U,15 41160 OPEN2,U,2,"#" 41190 PRINT#15,"U1 2 ";D$;" 18 0" 41200 PRINT#15,"B-P 2 144" 41210 DN$="": FOR I=144 TO 159: GET#2,BY$: DN$=DN$+BY$: NEXT I: GET#2,BY$,BY$ 41220 ID$="": FOR I=162 TO 166: GET#2,BY$: ID$=ID$+BY$: NEXT I 41230 UE$=" 0 "+CHR$(34)+DN$+CHR$(34)+" "+ID$+"[146]" 41250 DE=0 41260 GOSUB 42610 41280 PRINT#15,"M-R"CHR$(250)CHR$(2)CHR$(3) 41290 GET#15,LO$,BY$,HI$ 41300 PRINT 256*ASC(HI$+NU$)+ASC(LO$+NU$);" BLOCKS FREE." 41310 IF DR=B1 THEN PRINT#4,256*ASC(HI$+NU$)+ASC(LO$+NU$);" BLOCKS FREE." 41320 CLOSE 2 41330 CLOSE 15 41340 IF DR=B1 THEN DR=B0: PRINT#4: CLOSE 4 41350 GOSUB 2240 41360 RETURN 41380 REM ***************************** 41390 REM * DISKETTE VALIDIEREN 41400 REM * 41420 HE=2 41430 OPEN15,U,15 41440 OPEN2,U,2,"#" 41480 PRINT#15,"R:&BACK=&BACK" 41490 INPUT#15,E1,BY$,BY,BY 41500 IF E1=62 THEN 41560 41510 PRINT"WORKING-DIRECTORY IST NICHT DIE ROOT-" 41520 PRINT"DIRECTORY" 41530 CLOSE 2: GOSUB 2240: GOTO 41930 41560 FOR I=1 TO 35 41570 FOR J=2 TO 4 41580 BA(I,J)=255 41590 NEXT J 41600 NEXT I 41620 GOSUB 44480 41640 DE=0 41650 GOSUB 42610 41680 PRINT"BERECHNUNG DER FREIEN BLOECKE PRO SPUR" 41690 FOR I=1 TO 35 41700 EI=0 41710 FOR J=2 TO 4 41720 DZ=BA(I,J) 41730 DZ=DZ/2: IF DZ<>INT(DZ) THEN EI=EI+1 41740 DZ=INT(DZ): IF DZ>0 THEN 41730 41750 NEXT J 41760 BA(I,1)=EI: PRINT"."; 41770 NEXT I 41790 CLOSE 2 41810 PRINT: PRINT"SCHREIBEN DER BAM" 41820 FOR I=1 TO 35 41830 PRINT#15,"M-W"CHR$(4*I)CHR$(7)CHR$(2)CHR$(BA(I,1))CHR$(BA(I,2)) 41840 PRINT#15,"M-W"CHR$(4*I+2)CHR$(7)CHR$(2)CHR$(BA(I,3))CHR$(BA(I,4)) 41850 NEXT I 41880 PRINT#15,"M-W"CHR$(14)CHR$(0)CHR$(2)CHR$(18)CHR$(0) 41890 PRINT#15,"M-W"CHR$(4)CHR$(0)CHR$(1)CHR$(144) 41900 PRINT#15,"M-R"CHR$(4)CHR$(0): GET#15,BY$: IF BY$=CHR$(144) THEN 41900 41920 PRINT#15,"I";D$ 41930 CLOSE 15 41940 RETURN 41960 REM ***************************** 41970 REM * DELETE DIR 41980 REM * 42000 OPEN15,U,15 42010 OPEN2,U,2,"#" 42020 GET#2,BY$: PN=ASC(BY$+NU$) 42040 INPUT"ZU LOESCHENDES DIRECTORY";DI$ 42050 DI$="&"+DI$ 42060 IF LEN(DI$)>16 THEN PRINT"NAME ZU LANG": GOSUB2240: GOTO 42480 42090 PRINT"DIRECTORY WECHSELN" 42100 PRINT#15,DI$ 42110 INPUT#15,E1,E2$,E3,E4 42120 IF E1<>0 THEN PRINT E1,E2$,E3,E4: GOSUB 2240: GOTO 42480 42210 AN=1: DE=1: ZE=0: AZ=0: RK=0: AK=3 42220 GOSUB 43350 42230 IF RK=0 THEN 42290 42240 PRINT"SUBDIRECTORY IST NICHT LEER" 42250 PRINT#15,"&BACK" 42260 GOSUB 2240: GOTO 42480 42290 PRINT"DIRECTORYUEBERSCHRIFT LOESCHEN" 42300 PRINT#15,"U1 2 ";D$;STR$(T1);STR$(S1) 42310 PRINT#15,"M-W"CHR$(2)CHR$(PN+3)CHR$(1)CHR$(0) 42320 PRINT#15,"U2 2 ";D$;STR$(T1);STR$(S1) 42350 PRINT#15,"U1 2 ";D$;STR$(T2);STR$(S2) 42380 PRINT"'&BACK'-DATEI LOESCHEN" 42390 PRINT#15,"S";D$;":&BACK,U" 42420 PRINT"RUECKSCHALTEN" 42430 PRINT#15,"M-E"CHR$(5)CHR$(PN+3) 42450 PRINT"SUBDIRECTORYEINTRAG LOESCHEN" 42460 PRINT#15,"S";D$;":";DI$ 42480 CLOSE 2 42490 CLOSE 15 42500 RETURN 42520 REM ******************************************* 42530 REM * DIRECTORYS DRUCKEN / DISKETTE VALIDIEREN 42540 REM * 42610 IF HE=2 THEN AK=2: GOTO 42860 42620 AK=1: AN=1 42660 PRINT SPC(DE);UE$ 42670 IF DR=B1 THEN PRINT#4,SPC(DE);UE$ 42680 GOSUB 44770: IF P3=B1 THEN 42790 42690 PRINT SPC(DE);" WEG: "; 42700 IF DR=B1 THEN PRINT#4,SPC(DE);" WEG: "; 42710 FOR I=K3 TO SP+1 STEP -1 42720 PRINT MID$(SK$(I),6); 42730 IF DR=B1 THEN PRINT#4,MID$(SK$(I),6); 42740 IF I>SP+1 THEN PRINT"/";: IF DR=B1 THEN PRINT#4,"/"; 42750 NEXT I 42760 PRINT: IF DR=B1 THEN PRINT#4 42790 TR=18: SC=1 42800 ZE=0 42810 GOSUB 43350 42820 PRINT: IF DR=B1 THEN PRINT#4 42860 TR=18: SC=1: ZE=0 42870 SA=AK: IF HE=1 THEN AK=2 42880 GOSUB 43350 42890 AK=SA 42900 IF RC=0 THEN 43100 42940 VA$=CHR$(TR)+CHR$(SC)+CHR$(ZE)+CHR$(NT)+CHR$(NS) 42950 FOR I=1 TO 16: Z$=MID$(F$,I,1): IFZ$<>"[160]"THENVA$=VA$+Z$:REM SHIFT-SPACE! 42960 NEXT I 42970 GOSUB 44850 42990 PRINT#15,F$ 43000 DE=DE+1 43010 AN=1 43020 IF HE=1 THEN 42660 43050 GOSUB 44480 43060 AN=1 43070 GOTO 42860 43100 GOSUB 44770 43110 IF P3=B1 THEN F$="": RETURN 43140 GOSUB 44940 43150 TR=ASC(MID$(VA$,1,1)) 43160 SC=ASC(MID$(VA$,2,1)) 43170 ZE=ASC(MID$(VA$,3,1)) 43180 NT=ASC(MID$(VA$,4,1)) 43190 NS=ASC(MID$(VA$,5,1)) 43230 PRINT#15,"&BACK": DE=DE-1: AN=0 43250 ZE=ZE+1 43260 GOTO 42870 43280 REM ***************************** 43290 REM * ALLE DIRECTORYEINTRAEGE EINER DIR. ABKLAPPERN 43300 REM * 43350 IF AN=0 THEN 43430 43360 IF DE=0 THEN 43430 43390 PRINT#15,"U1 2 ";D$;" 18 1" 43400 GET#2,TR$,SC$: TR=ASC(TR$+NU$): SC=ASC(SC$+NU$) 43430 PRINT#15,"U1 2 ";D$;TR;SC 43450 GET#2,NT$,NS$: NT=ASC(NT$+NU$): NS=ASC(NS$+NU$) 43480 PRINT#15,"B-P 2 ";ZE*32+2 43490 FOR I=0 TO 29: GET#2,FE$(I): NEXT I 43520 ON AK GOTO 43550,43730,43800 43550 IF ASC(FE$(0)+NU$)=0 THEN 43700 43560 BL=256*ASC(FE$(29)+NU$)+ASC(FE$(28)+NU$) 43570 F$=STR$(BL) 43580 IF BL<100 THEN F$=F$+" " 43590 IF BL<10 THEN F$=F$+" " 43600 F$=F$+" "+CHR$(34) 43610 FOR J=3 TO 18: F$=F$+FE$(J): NEXT J 43620 F$=F$+CHR$(34)+" " 43630 FT=ASC(FE$(0)+NU$) 43640 IF (FT AND 2^7)=0 THEN F$=F$+"*": GOTO 43660 43650 F$=F$+" " 43660 F$=F$+FT$(FT AND 3) 43670 IF FT AND 2^6 THEN F$=F$+"<" 43680 PRINT SPC(DE);F$ 43690 IF DR=B1 THEN PRINT#4,SPC(DE);F$ 43700 GOTO 43980 43730 GOSUB 44080 43740 IF RC=1 THEN RETURN 43770 GOTO43980 43800 FT=ASC(FE$(0)+NU$) 43810 IF AZ>0 THEN 43880 43820 BL=256*ASC(FE$(29)+NU$)+ASC(FE$(28)+NU$) 43830 IF FT<>195 OR BL<>0 THEN RK=1: RETURN 43850 T1=TR: S1=SC 43860 AZ=1 43870 GOTO 43980 43880 IF FT=0 THEN 43980 43890 IF FT<>131 THEN RK=1: RETURN 43900 IF AZ=2 THEN RK=1: RETURN 43920 F$="": FOR J=3 TO 18: F$=F$+FE$(J): NEXT J 43930 IFF$<>"&BACK[160][160][160][160][160][160][160][160][160][160][160]"THENRK=1:RETURN 43940 T2=ASC(FE$(1)+NU$) 43950 S2=ASC(FE$(2)+NU$) 43960 AZ=2 43980 ZE=ZE+1 43990 IF ZE=8 AND NT=0 THEN RC=0: RETURN 44000 IF ZE=8 THEN TR=NT: SC=NS: ZE=0: GOTO 43430 44010 GOTO 43480 44030 REM ***************************** 44040 REM * TEST, OB EINTRAG DIRECTORYEINTRAG 44050 REM * 44080 RC=0 44090 IF (ASC(FE$(0)+NU$) AND 131)<>131 THEN RETURN 44100 IF 256*ASC(FE$(29)+NU$)+ASC(FE$(28)+NU$)<>1 THEN RETURN 44110 IF FE$(3)<>"&" THEN RETURN 44130 F$="": FOR I=3 TO 18: F$=F$+FE$(I): NEXT I 44140 IF F$="&BACK[160][160][160][160][160][160][160][160][160][160][160]" THEN RETURN: REM !! DIES SIND 44180 OPEN3,U,3,F$+",U,R" 44190 FS$(0)="" 44200 FOR I=0 TO 2: GET#3,BY$: FS$(0)=FS$(0)+STR$(ASC(BY$+NU$)): NEXT I 44210 P=0 44220 FS$(1)="": FS$(2)="": FS$(3)="" 44230 FOR I=1 TO 35 44240 GET#3,BY$ 44250 IF (I=18) OR (I=23) THEN 44280 44260 Z=-(I>0 AND I<18)-2*(I>18 AND I<23)-3*(I>23 AND I<36) 44270 FS$(Z)=FS$(Z)+STR$(ASC(BY$+NU$)) 44280 P=P+ASC(BY$+NU$) 44290 IF P>255 THEN P=P-255 44300 NEXT I 44310 GET#3,BY$ 44320 CLOSE 3 44330 P=P+5+35 44340 P=P-(255*INT(P/256)) 44350 IF P<>ASC(BY$+NU$) THEN RETURN 44380 IF D0$<>FS$(0) OR D1$<>FS$(1) OR D2$<>FS$(2) OR D3$<>FS$(3) THEN RETURN 44410 RC=1 44420 RETURN 44440 REM ***************************** 44450 REM * DIR VALIDIEREN & IN DER COMPUTERBAM BLOECKE BELEGEN 44480 PRINT"VALIDIERE DIRECTORY ";F$ 44490 CLOSE 2 44500 PRINT#15,"V";D$ 44520 PRINT#15,"M-R"CHR$(4)CHR$(7)CHR$(140) 44530 FOR I=1 TO 35 44540 GET#15,BY$,B2$,B3$,B4$ 44550 BA(I,2)=BA(I,2) AND ASC(B2$+NU$) 44560 BA(I,3)=BA(I,3) AND ASC(B3$+NU$) 44570 BA(I,4)=BA(I,4) AND ASC(B4$+NU$) 44580 NEXT I 44590 OPEN2,8,2,"#" 44600 RETURN 44620 REM ***************************** 44630 REM * INIT-STACK 44640 REM * 44650 K3=20 44660 DIM SK$(K3) 44670 SP=K3 44680 B0=0 44690 B1=-1 44700 RETURN 44720 REM ***************************** 44730 REM * EMPTY-STACK 44760 REM * 44770 P3=B0 44780 IF SP=K3 THEN P3=B1 44790 RETURN 44810 REM ***************************** 44820 REM * PUSH 44840 REM * 44850 IF SP<0 THEN PRINT"STACK OVERFLOW": CLOSE 2: CLOSE 15: END 44860 SK$(SP)=VA$ 44870 SP=SP-1 44880 RETURN 44900 REM ***************************** 44910 REM * POP 44930 REM * 44940 SP=SP+1 44950 VA$=SK$(SP) 44960 RETURN